package net.realsee.gcl.service;

import net.realsee.gcl.domain.bo.wcs.ContainerPositionBo;

/**
 * 协鑫库位扩展接口
 *
 * @author 孙正华
 * @since 2023/11/08 13:28
 */
public interface IGclLocationExtendService {

    /**
     * 设置CCS系统中库位状态
     * <p>
     * 10: 库位为空，可进入(为此状态时, WCS才让小车进入库位)
     * 20: 库位使用中
     * 30: 库位已被禁用
     */
    void setCcsLocationStatus(String location, Integer status);

    /**
     * 获取CCS系统中库位状态
     * <p>
     * 10: 库位为空，可进入(为此状态时, WCS才让小车进入库位)
     * 20: 库位使用中
     * 30: 库位已被禁用
     */
    Integer getCcsLocationStatus(String location);

    /**
     * 设置WCS系统中库位上任务状态
     * <p>
     * 10:到位状态(已将货架放在库位内)
     * 20:离开状态(已将货架搬离库位)
     * 30:准备状态(在准入库位前等待点上)
     */
    void setWcsLocationTaskStatus(String location, Integer status);

    /**
     * 获取WCS系统中库位上任务状态
     * <p>
     * 10:到位状态(已将货架放在库位内)
     * 20:离开状态(已将货架搬离库位)
     * 30:准备状态(在准入库位前等待点上)
     */
    Integer getWcsLocationTaskStatus(String location);

    /**
     * 设置CCS系统中库位上容器位置
     */
    void setCcsLocationContainerPosition(ContainerPositionBo containerPosition);

    /**
     * 获取CCS系统中库位上容器位置
     */
    ContainerPositionBo getCcsLocationContainerPosition(String location);

    /**
     * 设置WCS系统中库位上容器位置调整状态
     * OK / NG
     */
    void setWcsLocationContainerPositionAdjustStatus(String location, String status);

    /**
     * 获取WCS系统中库位上容器位置调整状态
     * OK / NG
     */
    String getWcsLocationContainerPositionAdjustStatus(String location);

}
